/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sd_proj1.interfaces;

/**
 *
 * @author Pedro Costa Correia - 32795
 * @author Valter Pedro Lopes Vicente - 39360
 */
public interface ICraftsman {

	/**
	 * O artesão morre (originada pelo artesão).
	 * @param craftsmanId ID do artesão.
	 * @return <li> true, se morre.
	 *		<li> false, se não morre.
	 */
	public boolean endOperCraftsman(int craftsmanId);

	/**
	 * Um artesão vai buscar matérias primas para criar produtos (originada pelo artesão).
	 * @param craftsmanId ID do artesão.
	 * @return <li> true, se a quantidade de matérias primas atingir o limite de alerta.
	 *		<li> false, se ainda está dentro do limite ou caso tenha sido tirado algum inferior ao limite.
	 */
	public boolean collectMaterials(int craftsmanId);

	/**
	 * O artesão volta ao trabalho, indo buscar mais máteria prima (originada pelo artesão).
	 * @param craftsmanId ID do artesão.
	 */
	public void backToWork(int craftsmanId);

	/**
	 * O artesão está pronto a produzir um novo produto (originada pelo artesão).
	 * @param craftsmanId ID do artesão.
	 */
	public void prepareToProduce(int craftsmanId);

	/**
	 * O artesão coloca um produto acabado na estante da oficina (originada pelo artesão).
	 * @param craftsmanId ID do artesão.
	 * @return A quantidade de produtos acabados presentes na oficina.
	 */
	public int goToStore(int craftsmanId);
}
